import time
from selenium import webdriver
from selenium.webdriver.common.by import By
#
# # 用id查找
# d=webdriver.Edge()
# d.get("http://www.baidu.com")
# time.sleep(5)
# text=d.find_element("id","chat-textarea")
# text.send_keys('lol总决赛对战队伍')
# button=d.find_element("id","chat-submit-button")
# button.click()
# time.sleep(20)
#
# # 用name查找
# d=webdriver.Edge()
# d.get("http://www.sogou.com")
# time.sleep(5)
# d.find_element("name","query").send_keys("selenium")
# d.find_element(By.NAME,"query").send_keys("是什么")
# time.sleep(20)
#
# # 通过class name定位
# d=webdriver.Edge()
# d.get("http://www.baidu.com")
# time.sleep(5)
# text=d.find_element(By.CLASS_NAME,"chat-input-textarea.chat-input-scroll-style").send_keys('lol总决赛对战队伍')
# time.sleep(20)
#
# # 用tag name定位
# d=webdriver.Edge()
# d.get("http://www.sogou.com")
# text=d.find_elements(By.TAG_NAME,"a")
# print(text)
# text1=d.find_elements(By.TAG_NAME,"img")
# print(text1)
#
# #用LINK_TEXT   PARTIAL_LINK_TEXT定位
# d = webdriver.Edge() # 获取浏览器
# d.get("https://www.baidu.com")
# time.sleep(2) # 等待页面加载
#
# # 完全匹配定位
# a = d.find_element(By.LINK_TEXT,"网盘")
# print(a.text)
#
# # 部分匹配定位
# a1 = d.find_element(By.PARTIAL_LINK_TEXT,"40米")
# print(a1.text)
# print(a1.get_dom_attribute("href"))


#用css selector定位
'''
css selector 定位速度快
标签选择器
id选择器  #id名
class选择器 .class属性值
属性选择器 [属性名1=属性值][属性名2=属性值]

组合
input#id
input.属性值
input[属性名2=属性值]

子选择器
父选择器>子选择器
div#id > #id

模糊匹配
[属性1^=值] 以值开头的
[属性1$=值] 以值结尾的
[属性1*=值] 包含值
'''
# d=webdriver.Edge()
# d.get("http://www.sogou.com")
# time.sleep(2)
# d.find_element(By.CSS_SELECTOR,".sec-input").send_keys("豆包")
# d.find_element(By.CSS_SELECTOR,"#query").send_keys("是什么")
# h1=d.find_element(By.CSS_SELECTOR,"div").get_dom_attribute("class")
# h2=d.find_element(By.CSS_SELECTOR,"[uigs-id=mid_pinyin]").get_dom_attribute("href")
# print(h1)
# print(h2)
# time.sleep(2)

#以路径定位
'''
xpath代表元素在html文件中的路径，根据路径进行元素定位，定位速度比css选择器速度慢
绝对路径：从跟节点开始 /html/body/...
相对路径：从任意节点开始的相对路径 //input/a

相对路径的定位：
通过标签开始定位 //input
通过属性开始定位 //input[@属性=值] //*[@属性=值] //*[@属性=值 and @属性=值]
通过文本定位： //*[text()=值]
通过部分属性定位：
          //*[contains(text(),值)] 包含部分的文本值定位
           //*[contains(@属性,值)] 包含部分的属性值定位
'''
d=webdriver.Edge()
d.get("http://www.sogou.com")
time.sleep(2)
#绝对路径
a = d.find_element(By.XPATH,"/html/body/div/div[2]/div[4]/form/span[1]/input")
a.send_keys("xpath")


# 相对路径
b = d.find_element("xpath","//*[@uigs-id='nav_fanyi']").get_dom_attribute("href")
print(b)

c= d.find_element("xpath","//*[contains(text(),'搜狗')]")
print(c.get_dom_attribute("href"))

e = d.find_element(By.XPATH,'//*[@id="QRcode-footer"]/div[1]/a[1]')
print(e.get_dom_attribute("href"))
time.sleep(12)
